Separate Computation of Alias Information fior Reuse
نویسندگان
چکیده
Interprocedural data flow information IS useful for many software testing and analysis techniques, including data flow testing, regression testing, program slicing, and impact analysis. For programs with aliases, these testing and analysis techniques can yield invalid results, unless the data flow information accounts for aliasing effects. Recent research provides algorithms for performing interprocedural data flow analysis in the presence of aliases; however, these algorithms are expensive, and achieve precise results only on complete programs. This paper presents an algorithm for performing alias analysis on incomplete programs that lets individual software components such as library routines, subroutines, or subsystems be independently analyzed. The paper also presents an algorithm for reusing the results of this separate analysis when the individual software components are linked with calling modules. Our algorithms let us analyze frequently used software components, such as library routines or classes, independently, and reuse the results of that analysis when analyzing calling programs, without incurring the expense of completely reanalyzing each calling program. Our algorithms also provide a way to analyze large systems incrementally.
منابع مشابه
Separate Computation of Alias Information for Reuse 1
Interprocedural data ow information is useful for many software testing and analysis techniques, including data ow testing, regression testing, program slicing, and impact analysis. For programs with aliases, these testing and analysis techniques can yield invalid results, unless the data ow information accounts for aliasing eeects. Recent research provides algorithms for performing interproced...
متن کاملDetecting Strict Aliasing Violations in the Wild
Type-based alias analyses allow C compilers to infer that memory locations of distinct types do not alias. Idiomatic reliance on pointers on the one hand, and separate compilation on the other hand, together make it impossible to get this aliasing information any other way. As a consequence, most modern optimizing C compilers implement some sort of type-based alias analysis. Unfortunately, poin...
متن کاملLattice-Based Array Contraction: From Theory to Practice
We build on prior work on intra-array memory reuse, for which a general theoretical framework was proposed based on lattice theory. Intra-array memory reuse is a way of reducing the size of a temporary array by folding, thanks to affine mappings and modulo operations, reusing memory locations when they contain a value not used later. We describe the algorithms needed to implement such a strateg...
متن کاملReference Capabilities for Trait Based Reuse
The proliferation of shared mutable state in object-oriented programming complicates software development as two seemingly unrelated operations may interact via an alias and produce unexpected results. In concurrent programming this manifests itself as data-races. Concurrent objectoriented programming further suffers from the fact that code that warrants synchronisation cannot easily be disting...
متن کاملAn Effect System Combining Alias and Liveness for Explicit Memory Reuse
The garbage collection is a safe and efficient method for managing the heap. However it is not efficient for temporary storages that are allocated often and deallocated quickly. Reusing temporary storages without collecting garbages can be a remedy for such inefficiency. We present an effect system for checking whether every explicit memory reuse is safe. We abstract the heap by using symbolic ...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2013